class Account::AuthorizationController < Account::BaseController

  filter_parameter_logging :password

  skip_filter :require_authorization, :for => [:login]


  def login

    # User is al ingelogd.
    if @account != nil
      return redirect_to account_path
    end

    if !params[:name].blank? and !params[:password].blank?
      
      user = User.login(params[:name], params[:password])

      # Hier ontstaat een dillemma. Er is namelijk 1 winkelwagen gekoppeld aan de sessie
      # en er is 1 winkelwagen gekoppeld aan de gebruiker. Als de winkelwagen die gekoppeld
      # is aan de sessie niet leeg is, koppel dan die winkelwagen aan de gebruiker.
      if !@cart.is_empty
        user.update_attribute(:cart_id, @cart.id)
      end


      if user != nil

        if params[:create_cookie]
          user.update_attribute(:token_expiration_date, 28.days.from_now)
        else
          user.update_attribute(:token_expiration_date, Time.now)
        end


        session[:user_id] = user.id

        redirect_to account_path
      else
        flash[:notice] = 'Dit is geen geldige combinatie van gebruikersnaam en wachtwoord.'
      end
    end

  end

  def logout

    # User is niet ingelogd, redirect hem de homepage.
    if @account == nil
      return redirect_to root_path
    end

    # Verwijder alles van deze gebruiker en refresh de token.
    reset_session
    cookies[:token] = nil
    @account.refresh_token


    # Zet @account op nil om te voorkomen dat de view nog steeds
    # 'ingelogd als xxx' laat zien.
    @account = nil
  end
  
  
end